【トラブルシュート】GCPコンソールの接続エラーとアクセス制限を解決する方法(BeyondCorp Enterprise + Access Context Manager)

【トラブルシュート】GCPコンソールの接続エラーとアクセス制限を解決する方法(BeyondCorp Enterprise + Access Context Manager)

BeyondCorp Enterprise + Access Context ManagerでGCPコンソールにアクセス制限をかけた時に発生するエラーのトラブルシュートです。
Clock Icon2023.11.15

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

概要

今回の目的

今回は誰でも一度はハマるであろう、BeyondCorp EnterpriseAccess Context ManagerでGCPコンソールへのアクセス制限しようとした時に出るエラーについての解決策を共有します。

社内で実際に検証して分かったもののため、ぜひ参考にしていただければ幸いです。

【参考図(本来達成したいこと)】

BeyondCorp EnterpriseとAccess Context Managerとは

こちらは、以前記事で解説しているので、ブログの冒頭をご覧ください。(短くまとめてます)

GCPコンソールへのアクセス制御を簡単に実現する方法を教えます - ブログ

通常の設定方法

一旦、前段階の解説になります。
不要な方は「エラーの解決策」からご覧ください。(PCだと左の目次で選べます)

Access Context Managerでアクセスレベルを設定

Access Context Managerの詳細な操作方法は、
GCPコンソールへのアクセス制御を簡単に実現する方法を教えます - ブログをご覧ください。

  • アクセスレベルを作成していきます
    • すでにIPアドレスを指定したアクセスレベルが作成されています(今回の内容とは無関係のもの)

  • タイトルとIP範囲を指定します
    • IPv4であればCIDR範囲で指定します

  • 今回は133.44.57.22/32というアドレスを指定します
    • 実際にはこの外部IPアドレスは存在しません(仮のIP)

次にこの作成したアクセスレベルをBeyondCorp Enterpriseに適応していきます。

BeyondCorp EnterpriseでGCPコンソールの接続元を制限

BeyondCorp Enterpriseの詳細な操作方法は、
GCPコンソールへのアクセス制御を簡単に実現する方法を教えます - ブログをご覧ください。

  • グループを指定します
    • アクセス元を制限したいユーザーが所属しているグループ
  • IP-limitというアクセスレベルを指定します
    • 特定のIPv4のアドレスのみコンソールに接続可能な状態です

これでtest-acessのユーザーは、IPv4アドレスである133.44.57.22/32からでしかGCPコンソールに入れません。

エラーの解決策

今回発生するエラー

上記手順を踏んで検証したところ、なぜか条件を満たしている端末ユーザーからコンソールにアクセスしても、拒否されてしまいます。

Cloud Loggingでエラーを確認

IPv4の指定に問題があると予想し、Cloud Loggingのログエクスプローラーを見ます。
見ると、かなりのリクエストが失敗しているみたいです。

直近のリクエストの失敗を見るとIPv6からのリクエストだということがわかりました。
(requestMetadataを参照)

ということは、先程は端末のIPv4アドレスアクセスレベルを作成していたためにエラーに繋がったと予想します。

念の為、端末のIPv6アドレスを調べます。(調べ方は下記参照)

コマンドだと下記のように確認できます。

アクセスレベルのIPアドレスをIPv6に変更します。(画像のIPアドレスは仮です)

すると今まで拒否されていた端末から、該当のグループのユーザーからのGCPコンソールへのアクセスが可能になりました!!

Google検索からでもIPを簡単に確認することもできるので、別の環境で同じようなエラーが出る時には、一度IPアドレスの種類を疑うことも一つの手段だと思います。

IPv4とIPv6の違い

ここは余談です。
参考になれば幸いです。

  • アドレス長
    • IPv4:32ビット長で、約43億アドレスを確保
    • IPv6:128ビット長で、今後の利用増加に向けた確保のために制定されたIP、約340澗
  • アドレス表記法
    • IPv4:ドットで区切られた10進数(例:192.168.0.0)
    • IPv6:コロンで区切られた16進数(例:2001:0db8:85a3:0000:0000:8a2e:0370:7334)

まとめ

今回は検証のため、陥っていたエラーのトラブルシュートを記載しました。
やはり、エラーの時にはログを見ることがかなり重要だなと感じました。

今回は弊社Googleエンジニア2人で解決を図ったため、合わせ技の時短でトラブルシュートができました。(感謝)

本日はGoogle Cloud Next Tokyo '23

2023年11/15~16の二日間に渡り、約2年ぶりのGoogle Cloud Next Tokyoが開催されます!!
さまざまなセッションがあり、データ分析系AI/ML系アプリケーション系...etc と多様なGoogle Cloudに携わる情報のキャッチアップが可能です。

さらに来場者特典などもあり(ノベルティの提供)、GCP資格保持者などは限定グッズの配布もある模様。 無料で登録できるため、当日でも可能であれば来場して雰囲気を味わいましょう!!

最後に

前職が元パーソナルトレーナーであったため、ダイエット情報や筋トレ情報を積極的に配信したいと思っています。

健康になりたいなら筋トレ

健康になりたいなら、まずは筋トレ(運動)
なぜなら、筋トレ(運動)により、さまざまな活性ホルモンが体内に分泌され、現状の身体を保護してくれます。

これは運動時の一時的なものですが、継続によりさらに大きな効果が期待できます。
脳のニューロンの発達、ナチュラキラーセルの活発化(がん細胞や病気の原因を排除する)、ターンオーバーの促進(肌など)...etc

そう、これだけ見てもわかるように知識健康美容あらゆる局面で筋トレ(運動)は史上最強に効果的なのです。

言い訳は排除して、モチベーションが上がらない時こそ、Do it 筋トレです!!!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.